package com.dhcc.core.api.service;

import com.dhcc.core.api.vo.TokenVo;
import com.dhcc.core.modules.system.entity.User;

/**
 *     jwt的claim里一般包含以下几种数据:
 *         1. iss -- token的发行者
 *         2. sub -- 该JWT所面向的用户
 *         3. aud -- 接收该JWT的一方
 *         4. exp -- token的失效时间
 *         5. nbf -- 在此时间段之前,不会被处理
 *         6. iat -- jwt发布时间
 *         7. jti -- jwt唯一标识,防止重复使用
 * @ClassName: ITokenService 
 * @Description: TODO
 * @author: cyf
 * @date: 2018年11月25日 下午7:42:19
 */
public interface ITokenService {
    /** 申请token */
    TokenVo getToken(User user) ;
    /** 检查token是否有效：未超时、未注销*/
    void verifyToken(String token,boolean isRefresh);
    /** 注销token */
    void logoutToken(String token, String refreshToken);
    /**
     * 获取用户id从token中
     */
    public Long getUserId(String token);
    /**
     * 获取用户部门id从token中
     */
    public Long getDeptId(String token);
    /**
     * 获取用户名从token中
     */
    public String getUserName(String token);
}